Reasoning on Data-Parallel Programs in Isabelle/HOL
نویسنده
چکیده
This paper describes a dialect of the programming language C for data-parallel applications and its embedding into a verification environment based on Isabelle/HOL. On the one hand, the proposed language eliminates C features that interfere with program verification, while on the other hand, it introduces means to express data-parallelism. The embedding of this language into the existing verification environment shows the flexibility and diversified usability of the used verification environment even for rather special-purpose programming languages.
منابع مشابه
Lightweight Program Construction and Verification Tools in Isabelle/HOL
We present a principled approach to the development of construction and verification tools for while-programs. Our verification tool uses Kleene algebra with tests to capture the control flow of programs and its relational semantics for their data flow. It is extended to a Morganstyle program construction tool by adding one single axiom to the algebra. Our formalisation in Isabelle/HOL makes th...
متن کاملImperative Functional Programming with Isabelle/HOL
We introduce a lightweight approach for reasoning about programs involving imperative data structures using the proof assistant Isabelle/HOL. It is based on shallow embedding of programs, a polymorphic heap model using enumeration encodings and type classes, and a state-exception monad similar to known counterparts from Haskell. Existing proof automation tools are easily adapted to provide a ve...
متن کاملImplementation of a Pragmatic Translation from Haskell into Isabelle/HOL
Among other things the functional programming paradigm – in its pure form – offers the advantage of referential transparency. This facilitates reasoning over programs considerably. Haskell is one of the rare purely functional programming languages that is also of practical relevance. Yet, a comparable success for the verification of Haskell programs has not been achieved, so far. Unfortunately,...
متن کاملRelational bytecode correlations
We present a calculus for tracking equality relationships between values through pairs of bytecode programs. The calculus may serve as a certification mechanism for noninterference, a well-known program property in the field of language-based security, and code transformations. Contrary to previous type systems for non-interference, no restrictions are imposed on the control flow structure of p...
متن کاملMechanising Turing Machines and Computability Theory in Isabelle/HOL
We formalise results from computability theory in the theorem prover Isabelle/HOL. Following the textbook by Boolos et al, we formalise Turing machines and relate them to abacus machines and recursive functions. We “tie the knot” between these three computational models by formalising a universal function and obtaining from it a universal Turing machine by our verified translation from recursiv...
متن کامل